package com.t.bricks.bussiness.db.entity.department.base;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;

import java.io.Serializable;
import java.util.Date;

import org.springframework.format.annotation.DateTimeFormat;

import com.t.bricks.annotation.DataInfo;

/**
 * 部门组织'Department'表实体类
 * 警告:非数据库字段禁止在此添加,应该创建扩展实体中添加
 * @author HuangXinBian
 */
@ApiModel("部门组织Department")
@DataInfo(sDbName="BricksBaseSystem", sTableName="Department")
public class DepartmentBase implements Serializable {

	private static final long serialVersionUID = 1L;// 使用rmi时需修改

	/**
	 * 表编号
	 */
	//[start]
	@DataInfo( sDbName="BricksBaseSystem", sTableName="Department",
		sName="sId", sComment="表编号", isDbField=true, sDbFileType="varchar",
		sDefaultData="", isExtra=false, iskey=true, isNull=false,
		iMaxLength=90, isDecimal=false, iIntegralLength=2, iDecimalLength=2, iIndex=0 )
	@ApiModelProperty(value="表编号", example="", position=0)
	//[end]
	protected String sId;

	/**
	 * 上级表编号
	 */
	//[start]
	@DataInfo( sDbName="BricksBaseSystem", sTableName="Department",
		sName="sPid", sComment="上级表编号", isDbField=true, sDbFileType="varchar",
		sDefaultData="00", isExtra=false, iskey=false, isNull=true,
		iMaxLength=90, isDecimal=false, iIntegralLength=2, iDecimalLength=2, iIndex=1 )
	@ApiModelProperty(value="上级表编号", example="00", position=1)
	//[end]
	protected String sPid;

	/**
	 * 路径
	 */
	//[start]
	@DataInfo( sDbName="BricksBaseSystem", sTableName="Department",
		sName="sPath", sComment="路径", isDbField=true, sDbFileType="varchar",
		sDefaultData="/00/", isExtra=false, iskey=false, isNull=true,
		iMaxLength=200, isDecimal=false, iIntegralLength=2, iDecimalLength=2, iIndex=2 )
	@ApiModelProperty(value="路径", example="/00/", position=2)
	//[end]
	protected String sPath;

	/**
	 * 全称
	 */
	//[start]
	@DataInfo( sDbName="BricksBaseSystem", sTableName="Department",
		sName="sNameFull", sComment="全称", isDbField=true, sDbFileType="varchar",
		sDefaultData="", isExtra=false, iskey=false, isNull=false,
		iMaxLength=100, isDecimal=false, iIntegralLength=2, iDecimalLength=2, iIndex=3 )
	@ApiModelProperty(value="全称", example="", position=3)
	//[end]
	protected String sNameFull;

	/**
	 * 部门名称
	 */
	//[start]
	@DataInfo( sDbName="BricksBaseSystem", sTableName="Department",
		sName="sName", sComment="部门名称", isDbField=true, sDbFileType="varchar",
		sDefaultData="", isExtra=false, iskey=false, isNull=false,
		iMaxLength=32, isDecimal=false, iIntegralLength=2, iDecimalLength=2, iIndex=4 )
	@ApiModelProperty(value="部门名称", example="", position=4)
	//[end]
	protected String sName;

	/**
	 * 别名
	 */
	//[start]
	@DataInfo( sDbName="BricksBaseSystem", sTableName="Department",
		sName="sAliasName", sComment="别名", isDbField=true, sDbFileType="varchar",
		sDefaultData="", isExtra=false, iskey=false, isNull=true,
		iMaxLength=32, isDecimal=false, iIntegralLength=2, iDecimalLength=2, iIndex=5 )
	@ApiModelProperty(value="别名", example="", position=5)
	//[end]
	protected String sAliasName;

	/**
	 * 标识
	 */
	//[start]
	@DataInfo( sDbName="BricksBaseSystem", sTableName="Department",
		sName="sSign", sComment="标识", isDbField=true, sDbFileType="varchar",
		sDefaultData="", isExtra=false, iskey=false, isNull=true,
		iMaxLength=32, isDecimal=false, iIntegralLength=2, iDecimalLength=2, iIndex=6 )
	@ApiModelProperty(value="标识", example="", position=6)
	//[end]
	protected String sSign;

	/**
	 * 图标
	 */
	//[start]
	@DataInfo( sDbName="BricksBaseSystem", sTableName="Department",
		sName="sIcocls", sComment="图标", isDbField=true, sDbFileType="varchar",
		sDefaultData="", isExtra=false, iskey=false, isNull=true,
		iMaxLength=20, isDecimal=false, iIntegralLength=2, iDecimalLength=2, iIndex=7 )
	@ApiModelProperty(value="图标", example="", position=7)
	//[end]
	protected String sIcocls;

	/**
	 * 创建者
	 */
	//[start]
	@DataInfo( sDbName="BricksBaseSystem", sTableName="Department",
		sName="sCreator", sComment="创建者", isDbField=true, sDbFileType="varchar",
		sDefaultData="00000000", isExtra=false, iskey=false, isNull=false,
		iMaxLength=32, isDecimal=false, iIntegralLength=2, iDecimalLength=2, iIndex=8 )
	@ApiModelProperty(value="创建者", example="00000000", position=8)
	//[end]
	protected String sCreator;

	/**
	 * 创建时间
	 */
	@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")//解决表单提交时字符串时间值错误
	//[start]
	@DataInfo( sDbName="BricksBaseSystem", sTableName="Department",
		sName="dCreateDate", sComment="创建时间", isDbField=true, sDbFileType="datetime",
		sDefaultData="", isExtra=false, iskey=false, isNull=false,
		iMaxLength=23, isDecimal=false, iIntegralLength=-1, iDecimalLength=-1, iIndex=9 )
	@ApiModelProperty(value="创建时间", example="", position=9)
	//[end]
	protected Date dCreateDate;

	/**
	 * 修改人
	 */
	//[start]
	@DataInfo( sDbName="BricksBaseSystem", sTableName="Department",
		sName="sModifieder", sComment="修改人", isDbField=true, sDbFileType="varchar",
		sDefaultData="00000000", isExtra=false, iskey=false, isNull=false,
		iMaxLength=32, isDecimal=false, iIntegralLength=2, iDecimalLength=2, iIndex=10 )
	@ApiModelProperty(value="修改人", example="00000000", position=10)
	//[end]
	protected String sModifieder;

	/**
	 * 修改时间
	 */
	@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")//解决表单提交时字符串时间值错误
	//[start]
	@DataInfo( sDbName="BricksBaseSystem", sTableName="Department",
		sName="dModifiedDate", sComment="修改时间", isDbField=true, sDbFileType="datetime",
		sDefaultData="", isExtra=false, iskey=false, isNull=false,
		iMaxLength=23, isDecimal=false, iIntegralLength=-1, iDecimalLength=-1, iIndex=11 )
	@ApiModelProperty(value="修改时间", example="", position=11)
	//[end]
	protected Date dModifiedDate;

	/**
	 * 状态
	 */
	//[start]
	@DataInfo( sDbName="BricksBaseSystem", sTableName="Department",
		sName="iState", sComment="状态", isDbField=true, sDbFileType="int",
		sDefaultData="1", isExtra=false, iskey=false, isNull=false,
		iMaxLength=100, isDecimal=false, iIntegralLength=2, iDecimalLength=2, iIndex=12 )
	@ApiModelProperty(value="状态", example="1", position=12)
	//[end]
	protected Integer iState;

	/**
	 * 序号
	 */
	//[start]
	@DataInfo( sDbName="BricksBaseSystem", sTableName="Department",
		sName="iIndex", sComment="序号", isDbField=true, sDbFileType="int",
		sDefaultData="1", isExtra=false, iskey=false, isNull=false,
		iMaxLength=100, isDecimal=false, iIntegralLength=2, iDecimalLength=2, iIndex=13 )
	@ApiModelProperty(value="序号", example="1", position=13)
	//[end]
	protected Integer iIndex;

	/**
	 * 版本号
	 */
	//[start]
	@DataInfo( sDbName="BricksBaseSystem", sTableName="Department",
		sName="iVersion", sComment="版本号", isDbField=true, sDbFileType="int",
		sDefaultData="1", isExtra=false, iskey=false, isNull=false,
		iMaxLength=100, isDecimal=false, iIntegralLength=2, iDecimalLength=2, iIndex=14 )
	@ApiModelProperty(value="版本号", example="1", position=14)
	//[end]
	protected Integer iVersion;

	/**
	 * 取 表编号
	 * @return String
	 */
	public String getsId() {
		return sId;
	}

	/**
	 * 设置表编号
	 * @param sId
	 */
	public void setsId(String sId) {
		this.sId = sId;
	}

	/**
	 * 取 上级表编号
	 * @return String
	 */
	public String getsPid() {
		return sPid;
	}

	/**
	 * 设置上级表编号
	 * @param sPid
	 */
	public void setsPid(String sPid) {
		this.sPid = sPid;
	}

	/**
	 * 取 路径
	 * @return String
	 */
	public String getsPath() {
		return sPath;
	}

	/**
	 * 设置路径
	 * @param sPath
	 */
	public void setsPath(String sPath) {
		this.sPath = sPath;
	}

	/**
	 * 取 全称
	 * @return String
	 */
	public String getsNameFull() {
		return sNameFull;
	}

	/**
	 * 设置全称
	 * @param sNameFull
	 */
	public void setsNameFull(String sNameFull) {
		this.sNameFull = sNameFull;
	}

	/**
	 * 取 部门名称
	 * @return String
	 */
	public String getsName() {
		return sName;
	}

	/**
	 * 设置部门名称
	 * @param sName
	 */
	public void setsName(String sName) {
		this.sName = sName;
	}

	/**
	 * 取 别名
	 * @return String
	 */
	public String getsAliasName() {
		return sAliasName;
	}

	/**
	 * 设置别名
	 * @param sAliasName
	 */
	public void setsAliasName(String sAliasName) {
		this.sAliasName = sAliasName;
	}

	/**
	 * 取 标识
	 * @return String
	 */
	public String getsSign() {
		return sSign;
	}

	/**
	 * 设置标识
	 * @param sSign
	 */
	public void setsSign(String sSign) {
		this.sSign = sSign;
	}

	/**
	 * 取 图标
	 * @return String
	 */
	public String getsIcocls() {
		return sIcocls;
	}

	/**
	 * 设置图标
	 * @param sIcocls
	 */
	public void setsIcocls(String sIcocls) {
		this.sIcocls = sIcocls;
	}

	/**
	 * 取 创建者
	 * @return String
	 */
	public String getsCreator() {
		return sCreator;
	}

	/**
	 * 设置创建者
	 * @param sCreator
	 */
	public void setsCreator(String sCreator) {
		this.sCreator = sCreator;
	}

	/**
	 * 取 创建时间
	 * @return Date
	 */
	public Date getdCreateDate() {
		return dCreateDate;
	}

	/**
	 * 设置创建时间
	 * @param dCreateDate
	 */
	public void setdCreateDate(Date dCreateDate) {
		this.dCreateDate = dCreateDate;
	}

	/**
	 * 取 修改人
	 * @return String
	 */
	public String getsModifieder() {
		return sModifieder;
	}

	/**
	 * 设置修改人
	 * @param sModifieder
	 */
	public void setsModifieder(String sModifieder) {
		this.sModifieder = sModifieder;
	}

	/**
	 * 取 修改时间
	 * @return Date
	 */
	public Date getdModifiedDate() {
		return dModifiedDate;
	}

	/**
	 * 设置修改时间
	 * @param dModifiedDate
	 */
	public void setdModifiedDate(Date dModifiedDate) {
		this.dModifiedDate = dModifiedDate;
	}

	/**
	 * 取 状态
	 * @return Integer
	 */
	public Integer getiState() {
		return iState;
	}

	/**
	 * 设置状态
	 * @param iState
	 */
	public void setiState(Integer iState) {
		this.iState = iState;
	}

	/**
	 * 取 序号
	 * @return Integer
	 */
	public Integer getiIndex() {
		return iIndex;
	}

	/**
	 * 设置序号
	 * @param iIndex
	 */
	public void setiIndex(Integer iIndex) {
		this.iIndex = iIndex;
	}

	/**
	 * 取 版本号
	 * @return Integer
	 */
	public Integer getiVersion() {
		return iVersion;
	}

	/**
	 * 设置版本号
	 * @param iVersion
	 */
	public void setiVersion(Integer iVersion) {
		this.iVersion = iVersion;
	}

	/**
	 * 复制对象
	 * @param source 数据源
	 * @return DepartmentBase
	 */
	public static DepartmentBase copy(DepartmentBase source) {
		if (null == source) {
			return null;
		}
		
		DepartmentBase target = new DepartmentBase();
		target.setsId(source.getsId());
		target.setsPid(source.getsPid());
		target.setsPath(source.getsPath());
		target.setsNameFull(source.getsNameFull());
		target.setsName(source.getsName());
		target.setsAliasName(source.getsAliasName());
		target.setsSign(source.getsSign());
		target.setsIcocls(source.getsIcocls());
		target.setsCreator(source.getsCreator());
		target.setdCreateDate(source.getdCreateDate());
		target.setsModifieder(source.getsModifieder());
		target.setdModifiedDate(source.getdModifiedDate());
		target.setiState(source.getiState());
		target.setiIndex(source.getiIndex());
		target.setiVersion(source.getiVersion());

		return target;
	}
	
	/**
	 * 克隆对象
	 * @return DepartmentBase
	 */
	public DepartmentBase clone() {
		return copy(this);
	}
	
}
